package com.xiaoger.aop.aop.aspect;

import lombok.AllArgsConstructor;
import lombok.Getter;
import java.lang.annotation.*;

/**
 * 系统日志注解
 *
 * @author xjx
 * @date 2022/5/9 15:23
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AutoLog {

    /**
     * 日志内容
     *
     * @return
     */
    String value() default "";

    /**
     * 操作日志类型
     *
     * @return （1查询，2添加，3修改，4删除）
     */
    int operateType() default 0;

    @Getter
    @AllArgsConstructor
    enum OperateType {
        /**
         * 操作日志类型
         */
        select(1, "查询"),
        add(2, "添加"),
        update(3, "修改"),
        delete(4, "删除");

        /**
         * 操作类型
         */
        private final Integer type;

        /**
         * 描述
         */
        private final String desc;

        public static OperateType find(Integer type) {
            for (OperateType item : OperateType.values()) {
                if (item.getType().equals(type)) {
                    return item;
                }
            }
            return null;
        }
    }
}
